package com.shuziren.question.entity.dto;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


import java.util.List;

// 使用 Lombok 提供的 @Data 自动生成 getter、setter 和 toString 方法
// @AllArgsConstructor 生成全参构造方法
// @NoArgsConstructor 生成无参构造方法
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InsertInterviewQuestionDTO {
    @NotNull(message = "面试题标题不能为空")
    // 面试题标题
    private String title;

    // 面试题描述
    private String description;
    @NotNull(message = "面试题难度不能为空")
    // 难度等级，例如：1-简单，2-中等，3-困难
    private Integer difficulty;
    @NotNull(message = "预计完成时间不能为空")
    // 预计完成时间（单位：分钟）
    private Integer expectedTime;

    // 标签信息，用于分类和检索题目
    private String tags;
    @NotNull(message = "最大得分不能为空")
    // 最大得分，用于评分标准
    private Integer score;
    @NotNull(message = "标准答案不能为空")
    // 标准答案，提供参考答案
    private String answer;
    @Min(value = 1, message = "状态 1 启用 2禁用")
    @Max(value = 2, message = "状态 1 启用 2禁用")
    // 当前面试题的状态，例如：1-草稿，2-已发布
    private Integer status;

    // 所属题库 ID，用于关联具体题库
    private List<Integer> questionSetIds;

    // 分类 ID，用于题目归类
    private List<Integer>  categoryIds;
}

